The present invention relates to database management, and more specifically, to graph processing and management for relational database systems.
Relational database systems are often used as plain storage media. Applications access the database systems to retrieve data and implement any necessary data processing on the data in an application layer. One example is management of hierarchies, such as employee hierarchies or the organization of sales regions. The associated databases store relationships between people or regions, but evaluating those relationships requires either complicated structured query language (SQL) statements or additional processing performed at a higher level in the applications.
The concept of hierarchies can be generalized to graph structures. While network or graph structures can be stored in a relational model, graph operations are not typically available in the database systems. For example, a pipe network may be represented in a database by storing each pipe, connectors, and connecting pipes, etc. But determining the maximum possible flow between two points in the pipe network is not directly supported by database systems using SQL. One example where graph or network data structures are very prominent is in the field of spatial data information systems, such as geographic information systems (GISs). GISs manage spatial data such as streets, canals, areas, buildings, etc. Solutions typically store geometric information (e.g., location and shape of streets) along with non-spatial attributes (e.g., street names), but processing at the database level is rather limited.